from django.http import JsonResponse
from django.views import View
from app.models import *
import re

class RealInfoView(View):#真实认证接口
    def post(self, request):
        try:
            id = request.POST.get('id', '暂无数据')  # 获取id
            realName = request.POST.get('realName', '暂无数据')  # 获取真实姓名
            IDCode = request.POST.get('IDCode', '暂无数据')  # 获取真实姓名
            if id == '暂无数据' or realName == '暂无数据' or IDCode == '暂无数据':
                return JsonResponse({'code': '400', 'msg': '请填写正确的数据'})

            # 身份证的正则表达式
            regex = r'^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$'
            pattern = re.compile(regex)
            if not pattern.fullmatch(IDCode):#正则判断是否满足条件，不满足返回并提示报错信息
                return JsonResponse({'code': '400', 'msg': '请填写正确身份证'})
            data = User.objects.select_related('userinfo').get(id=id)  # 查找对象
            IDCode_data =  UserProfile.objects.filter(IDCode = IDCode)
            if len(IDCode_data) >0:
                return JsonResponse({'code': '400', 'msg': '身份证已绑定'})
            data.userinfo.realName = realName#保存真实姓名
            data.userinfo.IDCode = IDCode#保存身份证
            data.userinfo.save()  # 保存数据
            return JsonResponse({'code': '200', 'msg': '认证成功'})
        except Exception as e:
            return JsonResponse({"code": "500", "msg": f"服务器错误: {str(e)}"}, status=500)
